Systems in a network environment communicate information in packets that encapsulate the information according to network communication protocols. Packets transmitted from one node to another node may be transmitted through one or more intervening routers that route the packets throughout the network or between networks. The router typically includes one or more network processors to process the packets. The network processor stores packets in a memory device, such as a Static Dynamic Random Access Memory (SDRAM) and stores packet management information, such as packet queues in a Static Random Access Memory (SRAM).
The network processor may include a plurality of packet engines, each packet engine having code to perform a particular packet processing operation. One packet engine may perform classification operations by reading a packet header from a previous reassembly stage and use the header information to classify the packet. The classification operation may determine an exact match of information in the packet header, such as the source and destination addresses, the source and destination ports, and the protocol fields. The packet engine performing the classification operation may store the data to match against the packet header information in a memory device, such as an SRAM.
The classification operation is one of the most memory and computational intensive tasks performed by a network processor, where operations to compare the key against ranges of values or wild card searches may substantially tax memory capacity and bandwidth.